Type:{
NumericType | StringType | DateAndTimeType
}
NumericType:{
IntegerType OptFieldLen FieldOpts
| BooleanType FieldOpts
| FixedPointType FloatOpt FieldOpts
| FloatingPointType FloatOpt FieldOpts
| BitValueType OptFieldLen
}
IntegerType:{
"TINYINT" | "SMALLINT" | "MEDIUMINT"
| "INT" | "INT1" | "INT2" | "INT3" | "INT4" | "INT8"
| "INTEGER" | "BIGINT"
}
BooleanType:{
"BOOL" | "BOOLEAN"
}
FixedPointType:{
"DECIMAL" | "NUMERIC" | "FIXED"
}
FloatingPointType:{
"FLOAT" | "REAL" | "DOUBLE" | "DOUBLE" "PRECISION"
}
BitValueType:{
"BIT"
}
StringType:{
Char FieldLen OptBinary
| Char OptBinary
| NChar FieldLen OptBinary
| NChar OptBinary
| Varchar FieldLen OptBinary
| NVarchar FieldLen OptBinary
| "BINARY" OptFieldLen
| "VARBINARY" FieldLen
| BlobType
| TextType OptCharsetWithOptBinary
| "ENUM" '(' StringList ')' OptCharset
| "SET" '(' StringList ')' OptCharset
| "LONG" Varchar OptCharsetWithOptBinary
| "LONG" OptCharsetWithOptBinary
}
Char:{
"CHARACTER" | "CHAR"
}
NChar:{
"NCHAR"
| "NATIONAL" "CHARACTER"
| "NATIONAL" "CHAR"
}
Varchar:{
"CHARACTER" "VARYING"
| "CHAR" "VARYING"
| "VARCHAR"
| "VARCHARACTER"
}
NVarchar:{
"NATIONAL" "VARCHAR"
| "NATIONAL" "VARCHARACTER"
| "NVARCHAR"
| "NCHAR" "VARCHAR"
| "NCHAR" "VARCHARACTER"
| "NATIONAL" "CHARACTER" "VARYING"
| "NATIONAL" "CHAR" "VARYING"
| "NCHAR" "VARYING"
}
BlobType:
"TINYBLOB"
| "BLOB" OptFieldLen
| "MEDIUMBLOB" | "LONGBLOB" | "LONG" "VARBINARY"
TextType:
"TINYTEXT" | "TEXT" OptFieldLen | "MEDIUMTEXT" | "LONGTEXT"
DateAndTimeType:
"DATE"
| "DATETIME" OptFieldLen
| "TIMESTAMP" OptFieldLen
| "TIME" OptFieldLen
| Year OptFieldLen FieldOpts
Year:
"YEAR"
OptFieldLen:{
""
| FieldLen
}
FloatOpt:{
""
| FieldLen
| Precision
}
FieldLen:{
'(' LengthNum ')'
}
Precision:{
'(' LengthNum ',' LengthNum ')'
}
FieldOpts:{
""
| FieldOpts FieldOpt
}
FieldOpt:{
"UNSIGNED" | "SIGNED" | "ZEROFILL"
}
OptBinary:{
""
| "BINARY" OptCharset
| CharsetKw CharsetName OptBinMod
}
OptCharset:{
""
| CharsetKw CharsetName
}
CharsetKw:
"CHARACTER" "SET"
| "CHARSET"
| "CHAR" "SET"
CharsetName:
StringName
| "BINARY"
OptBinMod:
""
| "BINARY"
StringList:
stringLit
| StringList ',' stringLit
OptCharsetWithOptBinary:
OptBinary
| "ASCII" | "UNICODE" | "BYTE"